Anwendung

Die Anwendung von RPGUnit Tests gliedert sich in zwei Bereiche:
  1. Erstellen von Testfällen
  2. Ausführen von von Testfällen

Erstellen von Testfällen

Ein oder mehrere Testfälle (test case) bilden eine Test Suite (test suite). Im RPG wird ein Testfall in Form einer exportierten Prozedur erstellt. Die Prozedur muss dabei zwingend mit test beginnen, umm bei der Ausführung als Testfall erkannt zu werden. Umgekehrt bedeutet dies, das Prozeduren, die keine Testfälle darstellen und trotzdem mit test beginnen, vermieden werden sollten, zumindest aber nicht exportiert werden dürfen.

Um die RPGUnit Funktionen nutzen zu können, muss das Modul mit den Testfällen das copy book TESTCASE einbinden:

 /include qinclude,TESTCASE                  iRPGUnit Test Suite

Beispiele für Testfälle

Die Prozeduren(n) werden dann in einem Modul zu einer Test Suite zusammengefasst und mit dem Befehl RUCRTRPG zu einem Serviceprogramm kompiliert.

RUCRTRPG TSTPGM(RPGUNIT/RUPLUGINT1) SRCFILE(QEXAMPLE)

Ein Beispiel für eine RPGUnit Test Suite enthält die Teildatei QSRC.TEMPLATE. Bei der Ausführung dieser Test Suite wird eine Druckausgabe mit einer Darstellung des Programmablaufs erstellt.

Hinweis: Um das Ergebnis einer Umwandlung in RDi zu erhalten, muss der Parameter COPTION die Option *EVENTF enthalten. Ausserdem muss der Parameter SRCMBR die Quellenteildatei bennen, damit RDi die Umwandlungsergebnisse laden kann. Zum Beispiel:

RPGLE:
RUCRTRPG TSTPGM(&O/&N) SRCFILE(&L/&F) SRCMBR(&N) COPTION(*SRCSTMT *EVENTF) DBGVIEW(*LIST)

SQLRPGLE:
RUCRTRPG TSTPGM(&O/&N) SRCFILE(&L/&F) SRCMBR(&N) POPTION(*EVENTF) COMPILEOPT('DBGVIEW(*LIST)')

Weiterhin wird empfohlen *SRCSTMT anzugeben, um direkt mit einem Doppelclick aus der RPGUnit Ansicht an die fehlerhafte Programmzeile springen zu können.

Ausführen von Testfällen einer CL Befehlszeile

Fertige Test Suites können mit dem Befehl RUCALLTST ausgeführt werden. Standardmäßig werden alle in der Test Suite enthaltenen Test Cases ausgeführt. Mit dem Parameter TSTPRC kann ein einzelner Test Case zur Ausführung ausgewählt werden.

RUCALLTST TSTPGM(RUPLUGINT1)

oder auch

RUCALLTST TSTPGM(RUPLUGINT1) TSTPRC(TESTALLOK_2)

Ausführen von Testfällen im RDi

Innerhalb des RDi können die RPGUnit Test aus der Ansicht des Remote Explorers heraus gestartet werden. Mit einem Rechts-Click im Remote Explorer auf einem RPGUnit Test Serviceprogramm erscheint im Kontextmenü ein neuer Eintrag 'Run RPGUnit Test' zum starten des Testlaufs:

Ausführen RPGUnit Test

Das Ergebnis des Testlaufs erscheint sodann in der 'RPGUnit' View:

Anzeigen RPGUnit Test-Ergebnis

Innerhalb der View lassen sich folgende Aktionen ausführen:

Das Kontextmenü stellt folgende Aktionen zur Verfügung:

RPGUnit Kontextmenü

Werte im Kopfbereich:

Testläufe:Anzahl zuletzt ausgeführter Testfälle / Anzahl Testfälle in der Ansicht
Fehler:Anzahl Fehler in der Ansicht
Fehlgeschlagen:Anzahl fehlgeschlagener Testfälle in der Ansicht
Zusicherungen:Anzahl geprüfter Zusicherungen in der Ansicht

Ergebnis eines fehlgeschlagenen Testlaufs:

Display RPGUnit Test Result

Die Eigenschaften einer ausgewählten Zeile lassen sich auch in einem Eigenschaftsfenster in Tabellenform anzeigen:

Display RPGUnit Test Result

Standardmäßig wird die Ausführungszeit nicht angezeigt. Sie läßt sich jedoch bei Bedarf über den "Erweiterte Eigenschaften anzeigen" Button einblenden.

Tipp: Deaktivieren sie die Voreinstellung Anzeigen Ergebnissicht, um nach einem Testlauf den Focus auf der Ansicht zu halten, von der aus der Unit Test gestartet worden ist. Die RPGUnit Ergebnissicht visualisiert das Ergebnis eines Testlauf mit einem grünen oder roten Icon auf dem Tab der Sicht.

 Zeigt an, dass der Unit Test erfolgreich abgeschossen wurde.
 Zeigt an, dass der Unit Test mit Fehlern geendet hat. Wechseln sie zur Ergebnissicht, um die Details zu prüfen.
 Zeigt an, dass alle Unit Tests vom Benutzer abgebrochen worden sind. Wechseln sie zur Ergebnissicht, um die Details zu prüfen.

Unit Tests Mit Fehlern

Im Fall eines unerwarteten Programmabbruchs kann es hilfreich sein die Nachrichten im Jobprotokoll einsehen zu können. Verwenden sie die Voreinstellungen oder das Menü der Ansicht, um den Umfang der aufgezeichneten Nachrichten einzustellen:

Display RPGUnit Test Result

Keine Nachrichten-Es werden keine Nachrichten aus dem Jobprotokoll aufgezeichnet.
Abbruchnachrichten bei einem Programmabbruch-Bei einem unerwarteten Programmabbruch werden alle Abbruchnachrichten (*ESCAPE) des Jobprotokolls aufgezeichnet.
Alle Nachrichten bei einem Programmabbruch-Bei einem unerwarteten Programmabbruch werden alle Nachrichten des Jobprotokolls aufgezeichnet.
Alle Einträge-Alle Nachrichten des Jobprotokolls werden aufgezeichnet.
Formatieren Joblogeinträge-Gibt an, ob Joblogeinträge formatiert in der Befehlsprotokoll Ansicht dargestellt werden.

Die aufgezeichneten Nachrichten des Jobprotokolls werden in der Befehlsprotokoll Ansicht angezeigt.

Fehlernachrichten

Der folgende Dialog wird angezeigt, wenn ein Serviceprogramm nicht als Test Suite oder eine Prozedur nicht als Test Case akzeptiert wird. Prüfen sie die folgenden Regeln, um das Problem zu lokalisieren:

Error messages when attempting to run a test case